本篇文章紀錄判斷瀏覽器版本的方式與語法
希望對各位有幫助
圖片來源:http://www.spikednation.com/content/internet-explorer-sucksgif
1. JavaScript 語法
<script type="text/javascript">
var isIE = navigator.userAgent.search("MSIE") > -1;
var isIE7 = navigator.userAgent.search("MSIE 7") > -1;
var isFirefox = navigator.userAgent.search("Firefox") > -1;
var isOpera = navigator.userAgent.search("Opera") > -1;
var isSafari = navigator.userAgent.search("Safari") > -1;//Google瀏覽器是用這核心
if (isIE7) {
alert('isIE7');
}
if (isIE) {
alert('isIE');
}
if (isFirefox) {
alert('isFirefox');
}
if (isOpera) {
alert('isOpera');
}
if (isSafari) {
alert('isSafari or Chrome');
}
</script>
另外,我有將 JS 偵測的語法包成一個 Function 來使用,如下:
這個連結可以觀察其效果:http://jsfiddle.net/divaka/SMvLP/1/
function detectBrowser(){
var isIE = navigator.userAgent.search("MSIE") > -1;
var isIE7 = navigator.userAgent.search("MSIE 7") > -1;
var isFirefox = navigator.userAgent.search("Firefox") > -1;
var isOpera = navigator.userAgent.search("Opera") > -1;
var isSafari = navigator.userAgent.search("Safari") > -1;//Google瀏覽器是用這核心
if (isIE7) {
browser = 'IE7';
}
if (isIE) {
browser = 'IE';
}
if (isFirefox) {
browser = 'Firefox';
}
if (isOpera) {
browser = 'Opera';
}
if (isSafari) {
browser = 'Safari/Chrome';
}
return browser;
}
// ===== 根據瀏覽器動態改變元素大小 ====== //
var browser = detectBrowser();
alert(browser);
2. CSS語法
.classname{
background:blue; /*Firefox等非IE瀏覽器背景變藍色*/
background:red \9; /*IE8 背景變紅色*/
*background:black; /*IE7 背景變黑色*/
_background:orange; /*IE6 背景變橘色*/
}
3. HTML 語法
<!--[if IE 6]> 僅IE6可識別 <![endif]–>
<!--[if lte IE 6]> IE6及其以下版本可識別<![endif]–>
<!--[if lt IE 6]> IE6以下版本可識別<![endif]–>
<!--[if gte IE 6]> IE6及其以上版本可識別<![endif]–>
<!--[if gt IE 6]> IE6以上版本可識別<![endif]–>
<!--[if IE]> 所有的IE可識別 <![endif]–>
lte:Less than or equal to,小於或等於的意思。
lt :Less than的簡寫,小於的意思。
gte:Greater than or equal to的簡寫,大於或等於的意思。
gt :Greater than的簡寫,大於的意思。
! :不等於的意思
以下再補充 PHP 與 JSP 的語法
4. PHP 的語法
//偵測瀏覽器
$agent = $_SERVER['HTTP_USER_AGENT'];
if(strpos($agent,"MSIE 8.0"))
echo "Internet Explorer 8.0";
else if(strpos($agent,"MSIE 7.0"))
echo "Internet Explorer 7.0";
else if(strpos($agent,"MSIE 6.0"))
echo "Internet Explorer 6.0";
else if(strpos($agent,"Firefox/3"))
echo "Firefox 3";
else if(strpos($agent,"Firefox/2"))
echo "Firefox 2";
else if(strpos($agent,"Chrome"))
echo "Google Chrome";
else if(strpos($agent,"Safari"))
echo "Safari";
else if(strpos($agent,"Opera"))
echo "Opera";
else
echo $agent;
5. JSP 的語法
<%@ page language="java"%>
<%
String userAgent = request.getHeader("user-agent");
%>
<%out.print ("USER AGENT IS " +userAgent);%>
Note. 以下補充 JSP 可以取得之瀏覽器訊息
request.getHeader(“User-agent”) ; /*取得客戶端瀏覽器的版本號、類型*/
getHeader(String name); /*取得http協議定義的傳送文件頭信息 */
request. getMethod(); /*取得客戶端向服務器端傳送數據的方法有GET、POST、PUT等類型 */
request. getRequestURI(); /*取得發出請求字符串的客戶端地址 */
request. getServletPath(); /*取得客戶端所請求的腳本文件的文件路徑 */
request. getServerName(); /*取得服務器的名字 */
request.getServerPort(); /*取得服務器的端口號 */
request.getRemoteAddr(); /*取得客戶端的IP地址 */
request.getRemoteHost(); /*取得客戶端電腦的名字,若失敗,則返回客戶端電腦的IP地址*/
request.getProtocol(); /* 取得客戶端電腦的 Protocal */
request.getHeaderNames(); /*取得所有request header的名字,結果集是一個Enumeration(枚舉)類的實例 */
request.getHeaders(String name); /*取得指定名字的request */